This invention relates generally to resource-allocation arrangements, and relates specifically to resolution of contention for resources in call centers, also known as telemarketing systems or automatic call distribution (ACD) systems.
Call centers are systems that enable a pool of agents to serve incoming and/or outgoing calls (or other types of communications), with the calls being automatically distributed and connected to whichever of the agents are available at the time. When no agents are free and available to handle additional calls, additional incoming calls are typically placed in a hold queuexe2x80x94they are enqueuedxe2x80x94to await agents becoming available. Conversely, when no calls are available for handling, free agents are enqueued to await calls becoming available. It is common practice to divide the pool of agents into a plurality of groups, commonly known as splits, and to assign different types of calls to different splits. For example, different splits may be designated to handle calls pertaining to different client companies, or calls pertaining to different products or services of the same client company. Each split typically has its own call queue and agent queue.
The agents in different splits may have different skillsxe2x80x94different language skills, for examplexe2x80x94and calls requiring different ones of these skills are then directed to different ones of these splits. Agents, and optionally calls, may be assigned to different skills at different priorities, or skill levels, which reflect the proficiency in this skill possessed by the agent or required of the agent by the call. Agents typically have, and calls may require, a plurality of skills of various skill levels. Those agents and calls are then assigned to a plurality of splits corresponding to those skills.
The above-described approach for resolving the resource-contention problem in call centers lacks richness in defining types of calls and types of resources. It also does not provide adequate flexibility in the prioritization of calls. Moreover, it is a static description that does not describe the dynamic behavior of requests. Another drawback is that the meaning of the splits may change, and it is very hard to keep these is changing splits up-to-date with this approach in the ever-changing business environment of the call center.
This invention is directed to solving these and other problems and disadvantages of the prior art. Illustratively according to the invention, resolution of contention over resources in a call center is effected as follows:
Attributes are defined for calls and for resources.
Rules are defined that match calls having some specific attributes with resources that have corresponding specific attributes.
Priorities are assigned to rules. A priority preferably comprises an initial value and a time function that defines how the value changes with time.
Preferably, each rule defines one or more attributes of resources that can serve as a coverage path for calls.
Each resource has an associated call queue.
When a call arrives, rules are matched to the call, and the matching one or more rules determine the set of resources that are able to handle the call.
A token for every matching rule for the call is placed in the queues of all of the resources that are able to handle the call.
The position of the call""s token in a queue is determined by the priority value of the rule. The priority, and hence the call""s place in the queue, changes with time according to the rule""s corresponding time function.
The term xe2x80x9ccallxe2x80x9d is used generally herein to mean any communication or other request for (needing) a resource.
The invention allows a business to build a call-treatment solution in high-level constructs representative of the needs of the business, rather than by using artificial (unnatural to the business) low-level constructs and implicitly mapping the business constructs onto them. It provides functionality that has hitherto not been readily available in call centers such as prioritization of calls, coverage paths based on rules, call preemption, and others.
Generally according to the invention, distribution of resource requests (e.g., calls) among resources for processing the requests is effected as follows. At least one request attribute is determined for a request to be processed. At least one resource attribute that corresponds to the determined at least one request attribute is then found by searching a plurality of rule definitions each defining a correspondence between at least one request attribute and at least one resource attribute that is needed for processing a request having the at least one request attribute. Then at least one resource that has the found at least one resource attribute is found by searching a plurality of resource definitions each defining a correspondence between one of a plurality of resources and at least one resource attribute possessed by the one resource. Each one of the plurality of resources has its own request queue for requests to be processed by the one resource, and the request is enqueued in the request queue of each one of the found resources. Each rule definition defines a priority of the corresponding rule, and enqueuing the request involves enqueuing the request in the request queue of each one of the found resources at the priority of the rule that lead to the finding of the one resource. In response to one of the found resources processing the request (e.g., removing the request from its request queue), the request is removed from all of the request queues. Preferably, at least one rule definition further defines a function for changing the priority of the corresponding rule over time, and enqueuing further comprises changing the priority of the request over time in the request queue of each one of the resources found by the at least one rule according to the function of the rule definition of the at least one rule. Alternatively or additionally, the rule definition of at least one of the rules preferably further defines a coverage path of the one rule, and enqueuing involves estimating the minimum in-queue waiting time for the request in the request queues of the resources found by the one rule, enqueuing the request in the request queues of the resources in response to the minimum estimated in-queue waiting time not exceeding a threshold, and enqueuing the request in the request queue of a resource identified by the coverage path of the one rule in response to the minimum estimated in-queue waiting time exceeding the threshold.
The invention encompasses both a method for performing the just-characterized procedure, and an apparatus that effects the method steps. The apparatus preferably includes an effectorxe2x80x94any entity that effects the corresponding step, unlike a meansxe2x80x94for each step. Further, the invention encompasses a computer-readable medium containing software which, when executed in a computer, causes the computer to perform the method steps.
These and other features and advantages of the invention will become more evident from the following description of an illustrative embodiment of the invention considered together with the drawing.